package com.itheima.d8_interface_jdk8;

public interface A {

    //抽象方法
    void method1();



    /**
     * 1、默认方法：必须使用default修饰，默认会被public修饰
     * 实例方法：对象的方法，必须使用实现类的对象来访问。
     * 子类可以直接用，也可以在子类重写使用
     */
    default void method2() {
        System.out.println("我是接口中的默认方法");

        method1();
        method3();
        method4();
        method5();
    }



    /**
     * 2、静态方法：必须使用static修饰，默认会被public修饰
     */
    static void method3() {
        System.out.println("我是接口的静态方法");
    }



    /**
     * 3、私有方法：必须使用private修饰。(JDK 9开始才支持的)
     *   实例方法：对象的方法。
     *   静态方法：类方法
     *   私有方法只能在该类（接口）中可以被调用，用于给该类（接口）中的其他方法去调用
     */
    private void method4() {

    }
    private static void method5() {

    }

}

class B implements A{

    @Override
    public void method1() {

    }

    @Override
    public void method2() {
//        A.super.method2(); //调用父接口A中的method2
        System.out.println("子类重写了接口中的默认方法");
    }
}